<?php
namespace Servidor\Controller;

use Zend\Mvc\Controller\AbstractRestfulController;

class AtividadeRestController extends AbstractRestfulController
{
    
    
    /**
     * @method Http GET
     * Retorna uma atividade baseada no ID
     * (non-PHPdoc)
     * @see \Zend\Mvc\Controller\AbstractRestfulController::get()
     */
    public function get($id) {
        
        $em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
        $repo = $em->getRepository('Servidor\Entity\Atividade');

        // recupera a entidade baseado no ID
        $atividade = $repo->find( $id );
        
        return $atividade;
    }
    
    
    
    /**
     * @method Http GET List
     * Retorna uma lista de registros de atividades
     * (non-PHPdoc)
     * @see \Zend\Mvc\Controller\AbstractRestfulController::getList()
     */
    public function getList() {
        
        $em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
        $repo = $em->getRepository('Servidor\Entity\Atividade');
        
        $atividades = $repo->findAll();
        return $atividades;
    }
    
    
    /**
     * @method Http POST
     * (non-PHPdoc)
     * @see \Zend\Mvc\Controller\AbstractRestfulController::create()
     */
    public function create($data) {
    	
        $service = $this->getServiceLocator()->get('Servidor\Service\AtividadeService');
        $atividade = $service->save( $data );
        
        if ( $atividade )
            return $atividade;
        else 
            return array( 'error' => 'Erro durante a inclusão!' );
    }
    
    

    /**
     * @method Http DELETE
     * (non-PHPdoc)
     * @see \Zend\Mvc\Controller\AbstractRestfulController::delete()
     */
    public function delete($id) {
    	
        $service = $this->getServiceLocator()->get('Servidor\Service\AtividadeService');
        $id = $service->remove( $id );
        
        if ( $id )
        	return $id;
        else
        	return array( 'error' => 'Erro durante a exclusão!' );
    }
    
    
    /**
     * @method Http PUT
     * (non-PHPdoc)
     * @see \Zend\Mvc\Controller\AbstractRestfulController::update()
     */
    public function update($id, $data) {
    	
        $service = $this->getServiceLocator()->get('Servidor\Service\AtividadeService');
        $data['id'] = $id;
        $atividade = $service->save( $data );
        
        if ( $atividade )
            return $atividade;
        else 
            return array( 'error' => 'Erro durante a alteração!' );
    }
}
